package types

import "example.com/m/v2/model/mysql"

type BaseResp struct {
	Code int    `json:"code"`
	Msg  string `json:"msg"`
}

func (r *BaseResp) Success() {
	r.Code = 200
	r.Msg = "ok"
}

func (r *BaseResp) Fail(code int, msg string) {
	r.Code = code
	r.Msg = msg
}

/*
type CateDto struct {
	Id   int64  `json:"id"`
	Name string `json:"name"`
	Type int    `json:"type"`
	Pid  int64  `json:"pid"`
}
*/

type DesignCateReq struct {
	Type int `form:"type" json:"type"`
}

type DesignCateResp struct {
	BaseResp
	Result *[]mysql.Cate `json:"result"`
}

type DesignImgsReq struct {
	Page     int `form:"page" json:"page"`
	PageSize int `form:"pageSize" json:"pageSize"`
	Cate     int `form:"cate" json:"cate"`
}

type DesignImgsResp struct {
	BaseResp
	Result struct {
		List  *[]mysql.Imgs `json:"list"`
		Total int64         `json:"total"`
	} `json:"result"`
}

type DesignListReq struct {
	Type     int `form:"type" json:"type"`
	Page     int `form:"page" json:"page"`
	PageSize int `form:"pageSize" json:"pageSize"`
	Cate     int `form:"cate" json:"cate"`
}

type TemplatePageDto struct {
	Id     int64  `json:"id"`
	Cover  string `json:"cover"`
	Title  string `json:"title"`
	Width  int    `json:"width"`
	Height int    `json:"height"`
	State  int    `json:"state"`
}

type DesignListResp struct {
	BaseResp
	Result struct {
		List  *[]TemplatePageDto `json:"list"`
		Total int64              `json:"total"`
	} `json:"result"`
}

type DesignMaterialReq struct {
	Page     int `json:"page"`
	PageSize int `json:"pageSize"`
	Cate     int `json:"cate"`
}

type DesignMaterialResp struct {
	BaseResp
	Result struct {
		List  *[]mysql.Material `json:"list"`
		Total int64             `json:"total"`
	} `json:"result"`
}

type DesignTempReq struct {
	Id int64 `json:"id"`
}

type DesignTempResp struct {
	BaseResp
	Result *mysql.Template `json:"result"`
}

type DesignFontsReq struct {
	Page     int `json:"page"`
	PageSize int `json:"pageSize"`
}

type DesignFontsResp struct {
	BaseResp
	Result struct {
		List  *[]mysql.Fonts `json:"list"`
		Total int64          `json:"total"`
	}
}

/*
type ImgDto struct {
	Id          int    `json:"id"`
	Thumb       string `json:"thumb"`
	Url         string `json:"url"`
	Width       int    `json:"width"`
	Height      int    `json:"height"`
	CreatedTime string `json:"created_time"`
	UpdateTime  string `json:"updated_time"`
	Category    int    `json:"category"`
	Original    string `json:"original"`
	Author      string `json:"author"`
	Description string `json:"description"`
	Color       string `json:"color"`
}

type MaterialDto struct {
	Id          int    `json:"id"`
	Title       string `json:"title"`
	Width       int    `json:"width"`
	Height      int    `json:"height"`
	Original    string `json:"original"`
	Category    int    `json:"category"`
	Type        string `json:"type"`
	Model       string `json:"model"`
	Thumb       string `json:"thumb"`
	Url         string `json:"url"`
	CreatedTime string `json:"created_time"`
	UpdatedTime string `json:"updated_time"`
	State       int    `json:"state"`
}


*/

type LoginReq struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

type LoginResp struct {
	BaseResp
	Result struct {
		Token string `json:"token"`
	} `json:"token"`
}

//---------------------------------------
//need login

type UserImageReq struct {
	Page     int `json:"page"`
	PageSize int `json:"pageSize"`
}

type UserImageResp struct {
	BaseResp
	Result struct {
		List  *[]mysql.Image `json:"list"`
		Total int64          `json:"total"`
	} `json:"result"`
}

type AddImageReq struct {
	Width  int    `json:"width"`
	Height int    `json:"height"`
	Url    string `json:"url"`
}

type ImageDelReq struct {
	Id  int64  `json:"id"`
	Key string `json:"key"`
}

type DesignMyReq struct {
	Page     int `json:"page"`
	PageSize int `json:"pageSize"`
}

type PosterPageDto struct {
	Id     int64  `json:"id"`
	Cover  string `json:"cover"`
	Title  string `json:"title"`
	Width  int    `json:"width"`
	Height int    `json:"height"`
}

type DesignMyResp struct {
	BaseResp
	Result struct {
		List  *[]PosterPageDto `json:"list"`
		Total int64            `json:"total"`
	} `json:"result"`
}

type DesignPosterReq struct {
	Id int64 `json:"id"`
}

type DesignPosterResp struct {
	BaseResp
	Result *mysql.Poster `json:"result"`
}

type DesignSaveReq struct {
	Data        string `json:"data"`
	Height      int    `json:"height"`
	TempldateId int64  `json:"temp_id"`
	Title       string `json:"title"`
	Width       int    `json:"width"`
}

type DesignSaveResp struct {
	BaseResp
	Id int64 `json:"id"`
}

type PosterDelReq struct {
	Id int64 `json:"id"`
}
